<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- /番剧列表 开始 -->
    <client-only>
    <section class="container">
      <header class="comm-title">
        <h2 class="fl tac">
          <span class="c-333">全部番剧</span>
        </h2>
      </header>
      <section class="c-sort-box">
        <section class="c-s-dl">
          <dl>
            <dt>
              <span class="c-999 fsize14">视频分类</span>
            </dt>
            <dd class="c-s-dl-li">
              <ul class="clearfix">
                <li>
                  <a title="全部" href="javascript:void(0);" @click="searchOne('')">全部</a>
                </li>
                <li v-for="(item,index) in subjectNestedList" v-bind:key="index" :class="{active:oneIndex===index}">
                  <a :title="item.title" href="javascript:void(0);" @click="searchOne(item.id, index)">{{item.title}}</a>
                </li>
              </ul>
            </dd>
          </dl>
          <dl>
            <dt>
              <span class="c-999 fsize14"></span>
            </dt>
            <dd class="c-s-dl-li">
              <ul class="clearfix">
                <li v-for="(subject,index) in subSubjectList" :key="index" :class="{active:twoIndex===index}">
                  <a :title="subject.title" href="#" @click="searchTwo(subject.id,index)">{{subject.title}}</a>
                </li>
              </ul>
            </dd>
          </dl>
          <div class="clear"></div>
        </section>

        <div class="js-wrap">
          <section class="fr">
            <span class="c-ccc">
              <i class="c-master f-fM">1</i>/
              <i class="c-666 f-fM">1</i>
            </span>
          </section>

          <section class="fl">
            <ol class="js-tap clearfix">
              <li :class="{'current bg-orange':buyCountSort!==''}">
                <a title="收藏" href="javascript:void(0);" @click="searchBuyCount()">收藏
                  <span :class="{hide:buyCountSort===''}">↓</span>
                </a>
              </li>
              <li :class="{'current bg-orange':gmtCreateSort!==''}">
                <a title="最新" href="javascript:void(0);" @click="searchGmtCreate()">最新
                  <span :class="{hide:gmtCreateSort===''}">↓</span>
                </a>
              </li>
              <li :class="{'current bg-orange':priceSort!==''}">
                <a title="观看" href="javascript:void(0);" @click="searchPrice()">观看&nbsp;
                  <span :class="{hide:priceSort===''}">↓</span>
                </a>
              </li>
            </ol>
          </section>

        </div>
        <div class="mt40">
          <!-- /无数据提示 开始-->
          <section class="no-data-wrap" v-if="data.total===0">
              <em class="icon30 no-data-ico">&nbsp;</em>
              <span class="c-666 fsize14 ml10 vam">没有相关数据，小编正在努力整理中...</span>
          </section>
          <!-- /无数据提示 结束-->
          <article class="comm-course-list" >
              <ul class="of" id="bna">

                  <li  v-for="item in data.items" :key="item.id" >
                      <div class="cc-l-wrap" >
                          <section class="course-img">
                              <img :src="item.cover" class="img-responsive" :alt="item.title">
                              <div class="cc-mask">
                                  <a :href="'/course/'+item.id" title="查看详情" class="comm-btn c-btn-1" target="_blank">查看详情</a>
                              </div>
                          </section>
                          <h3 class="hLh30 txtOf mt10">
                              <a :href="'/course/'+item.id" :title="item.title" class="course-title fsize18 c-333">{{item.title}}</a>
                          </h3>
                          <section class="mt10 hLh20 of">
                              <span class="fl jgAttr c-ccc f-fA">
                                  <i class="c-999 f-fA">{{item.viewCount}}人观看</i>
                                  |
                                  <i class="c-999 f-fA">{{item.buyCount}}收藏</i>
                              </span>
                          </section>
                      </div>
                  </li>
              </ul>
              <div class="clear"></div>
          </article>
      </div>
        <!-- 公共分页 开始 -->
          <div class="block">
            <span class="demonstration"></span>
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="pageNum"
              :page-sizes="[4, 8, 12, 20]"
              :page-size="pageSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="data.total">
            </el-pagination>
          </div>

        <!-- 公共分页 结束 -->
      </section>
    </section>
    </client-only>
    <!-- /番剧列表 结束 -->
  </div>
</template>
<script>
import course from '@/api/teacher'

export default {

  data () {
    return {
      total:0,
      pageNum:1,
      pageSize:8,
      data:{},
      subjectNestedList: [], // 一级分类列表
      subSubjectList: [], // 二级分类列表
      searchObj: {}, // 查询表单对象
      oneIndex:-1,
      twoIndex:-1,
      buyCountSort:"",
      gmtCreateSort:"",
      priceSort:"",
      currentPage:""
    }
  },

  //获取番剧列表、分类
  created () {
    this.initCourse()
    this.initSubject()
  },

  methods: {
    //查询番剧列表
    initCourse(){
      course.getCourseList(this.pageNum, this.pageSize,this.searchObj).then(response => {
        this.data = response.data.data
      })
    },
    //查询所有一级分类
    initSubject(){
      course.getSubjects().then(response => {
        this.subjectNestedList = response.data.data.list
      })
    },

    //点击一级分类，显示对应的二级分类，二级联动查询数据
    searchOne(subjectParentId, index) {
      this.oneIndex = index//绑定样式
      this.twoIndex = -1
      this.searchObj.subjectId = "";
      this.subSubjectList = [];
      this.searchObj.subjectParentId = subjectParentId;
      this.gotoPage(this.pageNum)

      for (let i = 0; i < this.subjectNestedList.length; i++) {
        if (this.subjectNestedList[i].id === subjectParentId) {
          this.subSubjectList = this.subjectNestedList[i].children
        }
      }
    },

    //点击二级分类，查询数据
    searchTwo(subjectId, index) {
      this.twoIndex = index
      this.searchObj.subjectId = subjectId;
      course.getSortCourseInfo(this.pageNum, this.pageSize,subjectId).then(response => {
        this.data = response.data.data
      })
    },
    //收藏量查询
    searchBuyCount() {
      this.buyCountSort = "1";
      this.gmtCreateSort = "";
      this.priceSort = "";
      this.searchObj.buyCountSort = this.buyCountSort;
      this.searchObj.gmtCreateSort = this.gmtCreateSort;
      this.searchObj.priceSort = this.priceSort;
      this.gotoPage(this.pageNum)
    },
    //更新时间查询
    searchGmtCreate() {
      this.buyCountSort = "";
      this.gmtCreateSort = "1";
      this.priceSort = "";
      this.searchObj.buyCountSort = this.buyCountSort;
      this.searchObj.gmtCreateSort = this.gmtCreateSort;
      this.searchObj.priceSort = this.priceSort;
      this.gotoPage(this.pageNum)
    },
    //价格查询
    searchPrice() {
      this.buyCountSort = "";
      this.gmtCreateSort = "";
      this.priceSort = "1";
      this.searchObj.buyCountSort = this.buyCountSort;
      this.searchObj.gmtCreateSort = this.gmtCreateSort;
      this.searchObj.priceSort = this.priceSort;
      this.gotoPage(this.pageNum)
    },
    //分页查询
    gotoPage(page) {
      this.pageNum = page
      course.getCourseList(page, 8, this.searchObj).then(response => {
        this.data = response.data.data
      })
    },
    handleSizeChange(size) {
      this.pageSize = size
      if(this.twoIndex ===-1) {
        course.getCourseList(this.pageNum, this.pageSize, this.searchObj).then(response => {
          this.data = response.data.data
        })
      }else {
        course.getSortCourseInfo(this.pageNum, this.pageSize,this.searchObj.subjectId).then(response => {
          this.data = response.data.data
        })
      }
    },
    handleCurrentChange(num) {
      this.pageNum = num
      if(this.twoIndex ===-1) {
        course.getCourseList(this.pageNum, this.pageSize, this.searchObj).then(response => {
          this.data = response.data.data
        })
      }else {
        course.getSortCourseInfo(this.pageNum, this.pageSize,this.searchObj.subjectId).then(response => {
          this.data = response.data.data
        })
      }
    },
  }
}
</script>
<style scoped>
  .active {
    background: #409eff;
    border-radius:3px;
    color:#fff
  }
  .hide {
    display: none;
  }
  .show {
    display: block;
    float:left;
  }

</style>
